package com.peak.spring.boot.api.service;

import java.util.List;

import com.peak.spring.boot.api.entity.TreeEntity;
import com.peak.spring.boot.api.web.TreeVo;

public interface TreeService {

	/**
	 * 实现树形结构TreeVo
	 * 
	 * @param list
	 * @return
	 */
	<T extends TreeEntity<T>> List<TreeVo> treeView(List<T> list);

	/**
	 * 并不会实现树形结构，主要负责如果结果集中缺少父节点，需要添加进来
	 * 
	 * @param list
	 * @param entityClass
	 * @return
	 */
	<T extends TreeEntity<T>> List<T> treeGrid(List<T> list);

	/**
	 * 刷新lineNo，树形结构都是依托lineNO来的，但是保存的时候不知道当前的lineNo应该是多少
	 * 
	 * @param list
	 */
	<T extends TreeEntity<T>> List<T> refreshLineNo(List<T> list);

	/***
	 * 取下一个lineNo的数据
	 * 
	 * @param lineNo
	 * @return
	 */
	String nextNo(String lineNo);
}
